---
title: Determine policy-period expiration date
summary: Determines a policy period's expiration date by checking both WCIS and non-WCIS policy-period sources.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: embedded
operation_id: OP-POL-003
trigger: Caller reads PolicyInformation.PolicyPeriodExpirationDate
---

# Determine policy-period expiration date

Determines the expiration date of a policy period by querying `POLICY_PERIOD` unioned with `POLICY_PERIOD_NON_WCIS`, covering policies issued through either system.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-POL-003 |
| **Trigger** | Caller reads `PolicyInformation.PolicyPeriodExpirationDate(inDPI, inPolicyNumber, inPolicyPeriodEffectiveDate)` |
| **Inputs** | Data portal info, policy number, policy-period effective date |
| **Outputs** | `Date` |
| **Primary components** | `PolicyInformation.PolicyPeriodExpirationDate` |
| **Entry point** | `SAIF.Business.Policy\PolicyInformation.vb` |

## Steps

1. Caller reads `PolicyInformation.PolicyPeriodExpirationDate(inDPI, inPolicyNumber, inPolicyPeriodEffectiveDate)`.
2. A scalar request is built with `SQL.PolicyPeriodExpirationDate` ([SQL-011](../sql/SQL-011-policy-period-expiration-date.md), a `UNION` across [POLICY_PERIOD](../database-tables.md#policy_period) and [POLICY_PERIOD_NON_WCIS](../database-tables.md#policy_period_non_wcis)), with parameters `in_policy_num` and `in_policy_period_eff_date`.
3. `DAL.ProcessPortalRequest` executes; result is cast to `Date`.
   - On failure/no match: no `DBNull`/`Nothing` guard is present — behavior is unconfirmed.**

## Process flow

```mermaid
flowchart TD
	Start([PolicyPeriodExpirationDate read]) --> S1[Build IDataRequest with SQL-011]
	S1 --> S2[Bind policy_num and period_eff_date]
	S2 --> S3[DAL.ProcessPortalRequest executes UNION query]
	S3 --> EndOk([Cast result to Date])
```

## Failure and edge-case behavior
- No null/`DBNull` guard on the cast result.**

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

> **Note:** Statements marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `SAIF.Business.Policy\PolicyInformation.vb`
